import ToastComponent from '../components/toast'
import ModalComponent from '../components/showModal'
const Toast = {};
const showModal = {};
// 注册Toast
Toast.install = function (Vue) {
  // 生成一个Vue的子类
  // 同时这个子类也就是组件
  const ToastConstructor = Vue.extend(ToastComponent)
  // 生成一个该子类的实例
  const instance = new ToastConstructor();
  // 将这个实例挂载在我创建的div上
  // 并将此div加入全局挂载点内部
  instance.$mount(document.createElement('div'))
  document.body.appendChild(instance.$el)
  // 通过Vue的原型注册一个方法
  // 让所有实例共享这个方法 
  Vue.prototype.$toast = (msg, duration = 2000) => {
    instance.message = msg;
    instance.visible = true;
    setTimeout(() => {
      instance.visible = false;
    }, duration);
  }
}

// 注册Modal
showModal.install = function (Vue) {
  // 生成一个Vue的子类
  // 同时这个子类也就是组件
  const ModalConstructor = Vue.extend(ModalComponent)
  // 生成一个该子类的实例
  const modal = new ModalConstructor();
  // 将这个实例挂载在我创建的div上
  // 并将此div加入全局挂载点内部
  modal.$mount(document.createElement('div'))
  document.body.appendChild(modal.$el)
  // 通过Vue的原型注册一个方法
  // 让所有实例共享这个方法 
  Vue.prototype.$showModal = (msg,isShowComfirm,isShowCancel,callBack1,callBack2,confirmText,cancelText) => {
    modal.message = msg;
    modal.showCancel = isShowCancel;
    modal.showComfirm = isShowComfirm;
    modal.visible = true;
    if(confirmText == undefined || confirmText == null || confirmText == ''){
      modal.confirmText = '确定'
    }else {
      modal.confirmText = confirmText
    }
    if(cancelText == undefined || cancelText == null || cancelText == ''){
      modal.cancelText = '取消'
    }else {
      modal.cancelText = cancelText
    }
    
    modal.confirm = function() {
      modal.visible = false;
      callBack1();
    }
    modal.cancel = function() {
      modal.visible = false;
      callBack2();
    }
  }
}
export {Toast,showModal}